package com.agileboot.attendance.domain.overtime.dto;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 加班申请请求DTO
 */
@Data
public class OvertimeRequest {

    /**
     * 加班ID（更新时必填）
     */
    private Long overtimeId;

    /**
     * 员工ID
     */
    @NotNull(message = "员工ID不能为空")
    private Long employeeId;

    /**
     * 员工姓名
     */
    @NotBlank(message = "员工姓名不能为空")
    private String employeeName;

    /**
     * 部门ID
     */
    @NotNull(message = "部门ID不能为空")
    private Long deptId;

    /**
     * 部门名称
     */
    @NotBlank(message = "部门名称不能为空")
    private String deptName;

    /**
     * 加班类型（1工作日加班 2周末加班 3节假日加班）
     */
    @NotBlank(message = "加班类型不能为空")
    private String overtimeType;

    /**
     * 开始时间
     */
    @NotNull(message = "开始时间不能为空")
    private LocalDateTime startTime;

    /**
     * 结束时间
     */
    @NotNull(message = "结束时间不能为空")
    private LocalDateTime endTime;

    /**
     * 加班时长（小时）
     */
    @NotNull(message = "加班时长不能为空")
    private String duration;

    /**
     * 加班原因
     */
    @NotBlank(message = "加班原因不能为空")
    private String reason;

    /**
     * 备注
     */
    private String remark;
} 